#ifndef ASSIST_H
#define ASSIST_H

/* This header wraps up the assistant functions and the main algorithm of IFT */

#include "pixel_array.h"
#include "read_image.h"
#include "cv.h"
#include "highgui.h"

/* This function takes in an image and a kernel and perform 2D Convolution *
 * It is called by create_gradient_image()                                 */
void conv2(unsigned char *image, int height, int width, int kernel[][3], float * res);

/* This function takes in an image and outputs the gradient image */
void create_gradient_image(const char *filename);

/* This function executes the main algorithm of IFT */
void run_ift(int *mouse_position, int press_time, const char* filename);

/* This is an auxillary function which converts a JPG image to a PNG image */
void jpg2png(const char* filename);

#endif